package com.dingup.paike.service.message;

import com.dingup.paike.enums.MessageTypeEnum;
import com.dingup.paike.model.feedback.SendMsg;
import com.dingup.paike.model.pk.PkLessonStudentSign;

import java.util.Date;
import java.util.List;

/**
 * @author jun 2018/10/19
 */
public interface WxMsgService {

    /**
     * 开课前20分钟提醒, 发送给学生
     * @param lessonName
     * @param pkLessonId
     * @param openId
     * @param beginTime
     * @param userId
     * @param userName
     */
    void sendMsgAt20MinBeforeClass(String lessonName,
                                   Integer pkLessonId,
                                   String openId,
                                   Date beginTime,
                                   String userId,
                                   String userName,
                                   MessageTypeEnum type);

    /**
     * 发送第二天课表信息学生
     *
     * @param openId String
     * @param date Date
     * @param userName String
     * @param userId String
     */
    void sendMsgOfNextDayLessonInfo(String openId,
                                    Date date,
                                    String userName,
                                    String userId,
                                    List<Integer> pkLessonIds);

    void sendMsgOfNextDayLessonInfoForParents(String openId,
                                              Date date,
                                              String userName,
                                              String userId,
                                              List<Integer> pkLessonIds);


    /**
     * 开课5分钟后发送课程出勤情况
     *
     * @param openId String
     * @param url String
     * @param className String
     * @param lessonName String
     * @param lessonTime String
     * @param attendanceInfo String
     */
    void sendCountAbsentUserMsg(String openId,
                                String url,
                                String className,
                                String lessonName,
                                String lessonTime,
                                String attendanceInfo);

    /**
     * 发送课堂反馈相关消息
     *
     * @param sendMsg
     * @return
     */
    Boolean sendFeedBackMsg(SendMsg sendMsg);

    /**
     * 家长签到提醒
     *
     * @param sign PkLessonStudentSign
     */
    void sendParentWxMsgForStudentSign(PkLessonStudentSign sign);

    public void sendMsgForStudentFinishHomework(String openId, String userId, String userName, String homeworkName, Date expiredTime);
}
